package com.reliable.service.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;
/**
 * 用户列对象 xss_user
 *
 * @author ruoyi
 * @date 2025-07-09
 */
@Data
@ApiModel(value = "用户列对象")
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ReliableUser {
private static final long serialVersionUID=1L;

    /**
     * 主键
     */
    @ApiModelProperty(value = "主键", position = 0)
    private Long id;

    /**
     * 账号
     */
    @ApiModelProperty(value = "账号", position = 1)
    private String account;

    /**
     * 用户名
     */
    @ApiModelProperty(value = "用户名", position = 2)
    private String userName;

    /**
     * 密码
     */
    @ApiModelProperty(value = "密码", position = 3)
    private String passwordHash;

    /**
     * 身份证
     */
    @ApiModelProperty(value = "身份证", position = 4)
    private Long idCard;

    /**
     * 公司
     */
    @ApiModelProperty(value = "公司", position = 5)
    private String company;

    /**
     * 
     */
    @ApiModelProperty(value = "", position = 6)
    private String contact;

    /**
     * 手机号
     */
    @ApiModelProperty(value = "手机号", position = 7)
    private String phone;

    /**
     * 地址
     */
    @ApiModelProperty(value = "地址", position = 8)
    private String address;

    /**
     * 邮箱
     */
    @ApiModelProperty(value = "邮箱", position = 9)
    private String email;


    /**
     * 国家
     */
    @ApiModelProperty(value = "国家", position = 11)
    private String country;

    /**
     * 个性签名
     */
    @ApiModelProperty(value = "个性签名", position = 12)
    private String userSignal;

    /**
     * 省份
     */
    @ApiModelProperty(value = "省份", position = 13)
    private String province;

    /**
     * 城市
     */
    @ApiModelProperty(value = "城市", position = 14)
    private String city;

    /**
     * 区/县
     */
    @ApiModelProperty(value = "区/县", position = 15)
    private String district;

    /**
     * 邮政编码
     */
    @ApiModelProperty(value = "邮政编码", position = 16)
    private String postcode;

    /**
     * 登录IP
     */
    @ApiModelProperty(value = "登录IP", position = 17)
    private String loginIp;

    /**
     * 是否开启邮箱通知
     */
    @ApiModelProperty(value = "是否开启邮箱通知", position = 18)
    private Long isEmail;

    /**
     * 是否开启钉钉通知
     */
    @ApiModelProperty(value = "是否开启钉钉通知", position = 19)
    private Long isDingtalk;


    /**
     * 生日
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "生日", position = 10)
    private Date birth;

    /**
     * 登录时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "登录时间", position = 20)
    private Date loginTime;

    /**
     * 注册时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "注册时间", position = 21)
    private Date registerTime;

    /**
     * 到期时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "到期时间", position = 22)
    private Date expireTime;

    /**
     * 到期类型；1.未到期 2.到期
     */
    @ApiModelProperty(value = "到期类型；1.未到期")
    private Integer expireType;

    /**
     * 封禁类型类型；1.未封禁 2.封禁
     */
    @ApiModelProperty(value = "封禁类型类型；1.未封禁 2.封禁")
    @TableField(exist = false)
    private Long bannedType;

    /**
     * 用户类型：1.管理员 2.用户
     */
    @ApiModelProperty(value = "用户类型：1.管理员 2.用户", position = 23)
    private Long userType;

    /**
     * 绑定角色ID：1-管理员 2-警务人员 3-内部人员 4-普通用户
     */
    @ApiModelProperty(value = "绑定角色ID：1-管理员 2-警务人员 3-内部人员 4-普通用户", position = 24)
    private Integer roleId;


    /**
     * 更新时间
     * yyyy-MM-dd HH:mm:ss
     */
    private Date updateTime;




    /** 登录失败次数 */
    private Integer loginFailCount;

    /** 最后一次登录失败时间 */
    private Date lastLoginFailTime;

    /** 是否锁屏 1.开启 2.关闭 */
    private Integer lockscreenFlag;

    @ApiModelProperty(value = "模块逻辑删除  0.未删除 1.删除", position = 11)
    @TableLogic(value = "0", delval = "1")
    private Integer delFlag;


}